Minecraft at FreeBSD
https://gyazo.com/0280549956d5292cf4b8551f91e8107c
今回は、Xmasも近いので、FreeBSDでマインクラフトで遊びたいと思います。
FreeBSDでMinecraftサーバを作る
FreeBSDでMinecraftサーバ(games/minecraft-server)を作るのはとても簡単です。
基本情報
デフォルトポート: TCP/25565
起動ユーザ/グループ: mcserver/mcserver
インストール手順: 起動モードの設定(DAEMON or STANDALONE)とライセンス(EULA)確認が必要なため、portsからインストールします。
code:shell
$ cd /usr/ports/games/minecraft-server/
$ sudo make install
(snip)
起動モード選択(DAEMON: rcスクリプトから起動、STANDALONE: 手動で起動)
今回の説明では、DAEMONモードで設定を行います。
https://gyazo.com/c903e6d6e3f8b61603045cc293ac2b63
ライセンスの確認
Acceptすると、/usr/local/minecraft-server/eula.txtにeula=trueが設定されます。
https://gyazo.com/4540d1b7fba6053ce278c5042096b9a6
minecraftサーバーを起動します。
code:/etc/rc.conf
minecraft_enable="YES"
code:shell
$ sudo service minecraft start
Starting minecraft.
サーバーコンソールへはconsoleコマンドでアクセスできます(tmuxのコンソールに入ります)。
サーバーコンソールでは、いろいろなコマンドでサーバーを管理することができます。
code:shell
$ sudo service minecraft console
seed
help
(snip)
minecraftサーバの設定は、/usr/local/minecraft-server/server.propertiesで行います。
例えば、敵の出てこないクリエーティブモードで動かす場合は、以下のようになります。
code:server.properties.diff
--- server.properties.org 2022-12-02 12:39:40.019096000 +0900
+++ server.properties 2022-12-05 14:50:23.397271000 +0900
@@ -1,9 +1,9 @@
-#Fri Dec 02 12:06:16 JST 2022
+#Mon Dec 05 14:50:23 JST 2022
enable-jmx-monitoring=false
rcon.port=25575
level-seed=
-gamemode=survival
+gamemode=creative
enable-command-block=false
enable-query=false
generator-settings={}
@@ -39,7 +39,7 @@
simulation-distance=10
rcon.password=
player-idle-timeout=0
-force-gamemode=false
+force-gamemode=true
rate-limit=0
hardcore=false
white-list=false
作成されたワールドは、/usr/local/minecraft-server/world/に保存されます。
worldディレクトリを消去すると、新しいワールドが作成されます。
ワールドのバックアップは、サーバー設定なども保存しておいたほうが良いので、/usr/local/minecraft-server/を丸ごと保存したほうが良いと思います。
不成功:Minecraftクライアントを使う
最初に結論を言っておくと、ports/pkgの二つのクライアントは、アカウント設定ができないので動きませんでした。
また、Linux版クライアントをLinuxlatorで動かすこともできませんでした。
FreeBSD ports/pkgには、二つのMinecraftクライアントがあります。
むとうが試した範囲では、両方ともログインができませんでした。
Microsoftアカウントでも、(現在使われていない)Mojangアカウントでも、ダメでした。
games/minecraft-client: 公式のクライアント(portsバージョン1.7.9)
クライアントはJavaで書かれているため、JDKさえあれば実行可能です。
現在、launcher.pack.lzmaを取ってこれないので、どこかから持ってきて~/.minecraft/に入れる必要があります。
このlauncher.pack.lzmaを使って起動する方法はとても古くて現在は使えません。
games/multimc: 多機能なクライアント(portsバージョン0.6.11)
記述言語: Java, C++
MultiMCの0.6.14のportsを無理やり作っても、現在必須のMicrosoftアカウントでのログインはできませんでした(下図)。
Azure Active Directoryのアカウントが必要なので、あきらめましたorz
Screenshot
minecraft-client
https://gyazo.com/0280549956d5292cf4b8551f91e8107c
MultiMC
https://gyazo.com/e55615de1ef07287e7fb0974a38eaec1
MultiMCアカウント設定画面(0.6.14): "Add Microsoft"が使えないです。
https://gyazo.com/52b6e0b1faea496f5a3598f0b7b826bf
LinuxlatorでのLinux版動作確認: /compat/linux/lib64/libstdc++.so.6のライブラリバージョン違いで動作できませんでした。
試したクライアントは…
Linux版MultiMCでのエラーは以下のとおりです。
code:shell
$ ldd MultiMC/bin/MultiMC|grep "not"|sort|uniq
MultiMC/bin/MultiMC: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by MultiMC/bin/MultiMC)
MultiMC/bin/MultiMC: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/home/mutoh/work/minecraft/Linux_mmc_client/MultiMC/bin/libLauncher_nbt++.so)
MultiMC/bin/MultiMC: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/home/mutoh/work/minecraft/Linux_mmc_client/MultiMC/bin/libLauncher_nbt++.so)
Minecraftクローンで遊ぶ
正規のMinecraftで遊べないなら、クローンで遊んでみるのはいかですか?
ports/pkgには、いくつかのMinecraftクローンがあります。
記述言語: C, OpenGL
マルチプレイ可能 : Pythonで書かれたサーバー(server.py)を使う(portsには含まれない)
記述言語: Rust
マルチプレイ可能(veloren-server-cli)
記述言語: C++, OpenGL
Luaで拡張可能
マルチプレイ可能(minetestserver)
minetestからのfork
記述言語: C++, OpenGL(実行には必須)
Luaで拡張可能
マルチプレイ可能
自分であげるfreeminerserver
公開されているサーバーを使う(起動時に一覧表示される)
Screenshot
craft
https://gyazo.com/b82ec864a74f21a314a9e52a3c54ec09
veloren
https://gyazo.com/188c5237995e9512f1143df096310fd4
minetest
https://gyazo.com/8daaebcc1ed729d8e7b87da27a602603
freeminer
ゲーム中
https://gyazo.com/a705ba2f000b3eca675b3b67b05f7935
起動時: サーバー選択
https://gyazo.com/329b59bf43156a2165bb1f5cca7e0e4b
おわりに
これで、おうちでMinecraftサーバーを立てて、遊ぶことができるようになりました!!
クライアントはうまく動かなかったorz
クローンでは遊べます!!
Let's play your Minecraft server at FreeBSD!!